The global positioning system (GPS) is based on an earth-orbiting constellation of twenty-four satellite vehicles each broadcasting its precise location and ranging information. From any location on or near the earth, a GPS receiver with an unobstructed view of the sky should be able to track at least four satellite vehicles, thereby being able to calculate the receiver's precise latitude, longitude, and elevation. Each satellite vehicle constantly transmits two signals, generally referred to as L1 and L2. The L1 signal from a satellite vehicle contains a unique pseudo-random noise code ranging signal (C/A code) with a chipping frequency of 1.023 MHz, system data with a bitrate frequency of 50 Hz, and an encrypted precise-code (y-code) with a chipping frequency of 10.23 MHz all being modulated onto a carrier frequency of 1575.42 MHz. The L2 signal consists of the system data and y-code being modulated onto a carrier frequency of 1227.60 MHz.
In order to calculate a three-dimensional location, a receiver must determine the distance from itself to at least four satellite vehicles. This is accomplished by first determining the location of at least four satellite vehicles using ephemeris data received from the satellites. Once the locations of the satellites have been determined, the distance from the receiver to each of the satellites is calculated based upon the current estimate of receiver position. The measurement of the distance from the receiver to a satellite is based on the amount of time that elapsed between the transmission of a ranging signal from each satellite vehicle and the reception of that chip symbol by the receiver. In particular, the estimated position of the receiver is then corrected based upon a time epoch associated with the received ranging signal.
In order to acquire the L1 or L2 signal, the receiver must match the C/A code or y-code carried in the L1 signal, or the y-code carried in the L2 signal, with an internally generated code. For the C/A code, this is typically done by correlating the two signals by shifting the generated code through the 1023 possible time offsets of the C/A code until the generated code matches the C/A code carried in the L1 signal. To improve the performance of the search, the generated code may be shifted at shorter intervals than a whole chip. For example, 2046 one-half chip positions may be searched. At the time offset when the generated code matches the C/A code carried in the L1 signal, the two signals will cancel out, leaving only the carrier frequency and system data.
In addition to finding the time offset of the C/A code or y-code carried in the L1 signal or the y-code carried in the L2 signal, the frequency of the received L1 or L2 signal is typically determined. This may be done by generating a local L1 or L2 signal, and correlating this, together with the generated C/A or Y code with the received signal. Because of the movement of the satellite vehicles relative to the earth, the received frequency will experience a Doppler shift of +/−4,500 Hz from the transmitted frequency of the L1 or L2 signal. Another source of frequency uncertainty is the imperfection of the local oscillator, which typically can add a frequency offset of +/−20 ppm, or +/−30 kHz. However, a good part of this offset is due to variations in temperature, and may be modeled by a GPS receiver with a temperature sensor. With this modeling, the remaining temperature uncertainty could be around 10 kHz. Receiver movement may also cause a Doppler effect, however, this effect is usually insignificant when compared to the movement of the satellite vehicles in a commercial application. Due to the conventional method of the GPS signal detection, the receiver generated L1 or L2 signal needs to be within less that 500 Hz of the received signal for a successful search. Typically the frequency of the generated signal is incremented in 750 Hz intervals as the receiver searches for the correct code/carrier combination.
Therefore, a two-dimensional search of an approximately 30,000 Hz frequency range and the possible time offsets of the C/A code or the y-code must be made in order to acquire the L1 or L2 signal. Some GPS receivers have been designed to concurrently search all possible time offsets for the C/A code in the L1 signal at a single frequency, thereby requiring an enormous number of correlators. After searching all 1023 or more time offsets at one frequency, the frequency is changed and the process is repeated until a satellite is found or the approximately 30,000 Hz frequency range has been searched. While this approach works well in most cases, new applications for GPS receivers are more likely to have access to a precise time source, narrowing the time, or code position, window that needs to be searched. At the same time, a drive to lower system cost by using cheaper oscillators with larger frequency errors maintains the need to quickly search a wide frequency range. Thus, there remains a need for a GPS receiver capable of concurrently searching the approximately 30,000 Hz range of frequencies to determine the precise frequency of the L1 or L2 signal, while having a modest number of correlators used to determine the time offset of the C/A code or the y-code carried in the L1 or the y-code in carried in the L2 signal.